There is nowadays a need for components and more precisely secure controllers that are able to encode or decode respectively transmitted or received data, to store said data in a non-directly accessible form or to identify themselves with a public key.
To illustrate these needs for secure components that are able to encode/decode the exchanged or stored data, the problem of pirating electronic copyrights may be mentioned as an example.
Unlike analog contents, a digital content may be easily copied without there existing any difference between the original and the copy. Furthermore, the development of the new communication means such as the Internet, enables to easily and instantaneously share any digital content with any person worldwide, which leads to a wide pirating of rights. The more affected industries by this wide fraud are the software supplier, record producers etc.
This fraud may be avoided by encoding the digital content using a cryptographic algorithm in such a way that only authorised persons having the algorithm and the decoding key at their disposal may access the digital content.
A credit card reader electronic payment terminal provides another example for which secure components that are able to encode/decode the exchanged and stored data are needed. Such a terminal typically comprises a microcontroller made of a calculation unit and a digital memory into which it stores: its applications, its authenticating and certificating parameters, the realized transactions etc.
Modifying the above parameters may involve a potential fraud. For example, a defrauder having access to the microcontroller may illegally download an application that requests the identifying code (PIN) from a smart card owner and that repeats the payment sequence so as to realize a certificated double transaction which as a transaction realized with an authentic pin may not be cancellable. A defrauder may also suppress a transaction or not handle it when it is realized by a determined smart card owner.
In order to protect the access to the microcontroller, electronic payment terminals suppliers have for a long time used devices for detecting the opening of the housing (switch type) where the microcontroller is located and to trigger the erasing of the controller memories if an opening of said housing is detected. The limits of such a securing clearly appear.
There is thus nowadays an increasing need to provide secure microcontrollers that are able to encode or decode respectively the transmitted data or the received data, and to store said data in an encoded form that is not directly accessible.
A first way to realize such components is for example to implant on a single sealed chip the calculation unit (the microprocessor) and the associated memories (RAM, ROM, EPROM, etc.). The defrauding access to these memories may not be made without running a risk of destroying the component and through the use of very sophisticated tools that are unavailable for most of the defrauders. In this case, the encoding algorithms and the corresponding secret keys are essentially used for exchanging data with the outside and for authenticating the exchanged data. The smartcards and in particular the cards of a SIM type for GSM phones use such a solution. A main drawback of this solution is its relatively limited size of memory.
A second way of proceeding is to use a microprocessor and distinct memories connected by a data bus and to store into said memories only informations that have previously been encoded by said microprocessor. In this case, the encoding algorithms and the corresponding secret keys are used not only for the exchange of data with the outside and for the authenticating of the exchanged data, but also for encoding the data in memory. This solution has the advantage that it allows to use standard memories with large sizes.
In all cases it appears to be necessary to have available at least an encoding algorithm and a secret encoding key in the chip comprising the microprocessor.
Indeed, the encoding algorithms that are used essentially of two types: symmetric or asymmetric, all require secret keys. Whereas the symmetric algorithms such as DES (Data Encryption Standard) use a single and same secret key for encoding and decoding the messages, the asymmetric algorithms use distinct keys for encoding and decoding.
A microprocessor executing an asymmetric algorithm hence has available a pair of keys, said pair being obtained from a secret key in such a way that the decoding key may not be deduced from the encoding key. The encoding key is published, i.e. it is made freely available by an appropriate control authority whereas the decoding key is kept secret in the module. Any person having access to the public key may encode a message intended to the module but only the module is able to decode the message by the use of its secret key.
An example of asymmetric algorithm is the RSA algorithm that is named after its inventors Rivest, Shamir and Adleman.
While the symmetric algorithms (DES etc.) are particularly adapted for encoding data to be stored in an external memory that may be accessed by the microprocessor only, the asymmetric algorithms (RSA etc . . . ) are particularly adapted for exchanging messages with the outside because they have the advantage that they do not communicate the decoding key which remains secret in the module. The only thing that the module has to communicate is the public key.
Typically, the implanting of the secret(s) key(s) in a secure component is performed during the production process of the component in an operation called component customisation.
Each secret key is either engraved in the chip, stored in an intern flash memory that may not be accessed from the outside without destroying the electronic component. This operation is called component customisation. The customisation operation is performed by a machine comprising a reader/scrambler into which the customisation data are downloaded and that may run autonomously due to a microprocessor.
The customisation data of the component and in particular the secret key is provided to the reader/scrambler by a peripheral device via a communication bus associated to a control device.
This customisation is relatively complex. In order to consider the security aspects, it is necessary to insure additional functions such as:                the calculating of transportation type keys for unlocking the component before the customisation operation;        the calculating of a session key for the securing of the data to be introduced in the card; and        the calculating of a certificate which authorises the creating of a directory or a file.        
Furthermore, such a customisation operation requires designing a high security infrastructure in the component factory. The customisation also slows down the production cycle duration of the components since it has to be individually performed on each chip. Furthermore, if a key has to be stored into a flash memory, the customisation forces the component manufacturer to add such a flash memory into his component, which requires an additional treatment if the chip did not required a flash memory originally.
Hence the present invention aims at overcoming the drawbacks of this prior art by providing an electronic component that is able to generate by itself the secret keys that are necessary for the executing of the cryptographic algorithm that it will host.